package jobascjp;

/**
 * Main stellt die Einstiegsklasse dar.
 * 
 * Es gibt viele Snippets und Klassen, hilfreiche Buecher sind der Study Guide 
 * und das Vorbereitungsbuch zum SCJP. In dieser Klassenbeschreibung findet sich 
 * ein Inhaltsverzeichnis der Code-Snippets und hilfreiche Anmerkungen im Umgang
 * mit Netbeans, eine IDE, die meist hier eingesetzt wird.
 * 
 * Hilfreiche Shortcuts - Netbeans:
 * Navigieren ... Strg-1 in Projekt-Doc, Strg-0 in Editor, Strg-7 Navigator
 * Run ... Shift-F6: aktuelle Datei;
 * Textergaenzung ... sout-Tab System.out.println(); psvm-Tab main-Methode;
 * 
 * Hilfreiche Shortcuts - Eclipse:
 * Aktionen ... Linksklick Space, Rechtsklick Menuetaste, Tab Weiter; Close Tab: Strg + W
 * Navigieren ... Strg + F6 / F7 / F8, Strg + O, Strg + L(Go to Line);
 * Editieren ... Strg + Shift + Pfeilrechts: Markierung aufziehen
 * Zeige ... Shortcuts: Strg + Shift + L;
 * Run ... class aus JavaApp: Shift + Alt + x, dann J;
 * syso ... Ctrl+Space ... System.out.println("");
 * 
 * Kapiteluebersicht, Study-Guide:
 * 1 - Declarations and Access Control
 * 2 - Object Orientation
 * 3 - Assignments
 * 4 - Operators
 * 5 - Flow Control, Exceptions and Assertions
 * 6 - Strings, I/O, Formatting, and Parsing
 * 7 - Generics and Collections
 * 8 - Inner Classes
 * 9 - Threads
 * 10 - Development
 * 
 * Assertions: 
 * ...
 * 
 * Debugging: 
 * Breakpoint setzen, Variableninhalte betrachten (Alt-Shift-1); 
 * Step Over - aktuelle Anweisung in Zeile ausfuehren;
 * Step Into - in die Methode der aktuellen Zeile wechseln;
 * Continue - Weiterlaufen lassen, bis naechster Breakpoint;
 * 
 * Versionsverwaltung (SVN mit Googlecode):
 * Commit ... einchecken, Update aktualisieren;
 * 
 * Unittests: 
 * ...
 * 
 * Projektstruktur:
 * Ein Paket taegt den gleichen Namen wie das Projekt, beinhaltet eine 
 * Main-Klasse samt main-Methode. Alle weiteren Pakete liegen eine Hierachie 
 * tiefer.
 * 
 * @author joba
 */
public class Main {

    /**
     * Methode stellt den Einstiegspunkt und liefert das Inhaltsverzeichnis.
     * 
     * ==== Aufgaben ===================================================
     * ==== Buch Guide 
     * 
     * SCJP-Guide Self Test, Declarations and Acces Control, 1
     * Buch S. 79; Methode selfTestChap01Question01(); done
     * 
     * SCJP-Guide Self Test, Declarations and Acces Control, 2
     * Buch S. 79; Methode selfTestChap01Question02(); done
     * 
     * SCJP-Guide Self Test, Declarations and Acces Control, 3
     * Class Voop; done, varargs bei Methoden; done
     * 
     * SCJP-Guide Self Test, Declarations and Acces Control, 4
     * Class TestEnum; Enum-Verwendung; done
     * 
     * SCJP-Guide Self Test, Declarations and Acces Control, 5
     * Package pkgA, class Foo, Package pkgB class Baz; Vererbung; done
     * 
     * SCJP-Guide Self Test, Declarations and Acces Control, 6
     * Class Electronic; Abstraktes, Interfaces; done
     * 
     * SCJP-Guide Self Test, Declarations and Acces Control, 7
     * Class Announce; Enums, Loops, Types; done 
     * 
     * SCJP-Guide Self Test, Declarations and Acces Control, 8
     * Class TestDays; Enum, Loops; done
     * 
     * SCJP-Guide Self Test, Declarations and Acces Control, 9
     * Class Frodo; Vererbung, Typen; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 1
     * Class Frob, Interface Frobnicate; Interfaces, Statisches; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 2
     * Class Top, Bottom2, Konstruktoren, Vererbung; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 3
     * Class Clidder; Vererbung und Sichtbarkeit; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 4
     * siehe Buch S. 173; Super()-Aufruf; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 5
     * siehe Buch S. 174, Definition Kohaesion; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 6
     * Class X, Class Y, Class Chrome; Casting und Vererbung; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 7
     * siehe Buch S. 175, OOD-Schwaechen erkennen; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 8
     * Class DogShow, Vererbung und Methodenaufruf; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 9
     * Class Redwood;
     * 
     * SCJP-Guide Self Test, Object Orientation, 10
     * Class Tenor, Vererbung, Polymorphismus; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 11
     * class SubSubAlpha; Vererbung, Konstruktoren; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 12
     * Class Building; Vererbung, this()-Call; done
     * 
     * SCJP-Guide Self Test, Object Orientation, 13
     * Class ZooKeeper;
     * 
     * SCJP-Guide Self Test, Object Orientation, 14
     * Buch S. 180
     * 
     * SCJP-Guide Self Test, Object Orientation, 15
     * Class ComingThru; Vererbung, Varargs;
     * 
     * SCJP-Guide Self Test, Assignments, 
     * Class CardBoard, GC; done
     * 
     * SCJP-Guide Self Test, Assignments, 2
     * Class Defender; Varargs, Casting; done 
     * 
     * SCJP-Guide Self Test, Assignments, 3
     * class Dims; Arrays, Casting;
     * 
     * SCJP-Guide Self Test, Assignments, 4
     * class Mixer, Konstruktoren und Kopien; done
     * 
     * SCJP-Guide Self Test, Assignments, 5
     * Class Fizz, Konstruktoren und final; done
     * 
     * SCJP-Guide Self Test, Assignments, 6
     * Class Bird, Initialisierungsbloecke; done
     * 
     * SCJP-Guide Self Test, Assignments, 7
     * Class Bridge, Enums, done
     * 
     * SCJP-Guide Self Test, Assignments, 8
     * Class Ouch, Loops, Konstruktoren, static; done
     * 
     * SCJP-Guide Self Test, Assignments, 9
     * Class Bertha, Autoboxing, Widening; done
     * 
     * SCJP-Guide Self Test, Assignments, 10
     * Class Eggs; Garbage-Collection, Object-creation; done
     * 
     * SCJP-Guide Self Test, Assignments, 11
     * E-Mail: v.mulzer@gmx.de Regensburg; Tennispartner Regensburg;
     * 
     * SCJP-Guide Self Test, Assignments, 12
     * TODO
     * 
     * SCJP-Guide Self Test, Assignments, 13
     * TODO
     * 
     * SCJP-Guide Self Test, Operators, 1
     * Class Hexy, Ternaerer Operator, done
     * 
     * SCJP-Guide Self Test, Operators, 2
     * Class Comp2, implizites Casting, done
     * 
     * SCJP-Guide Self Test, Operators, 3
     * Class Fork, CLI-Paras, OR-Parameter, done;
     * 
     * SCJP-Guide Self Test, Operators, 4
     * Class Feline, Konkatenation bei Operatoren, done
     * 
     * SCJP-Guide Self Test, Operators, 5
     * Class Incr, 
     * 
     * SCJP-Guide Self Test, Operators, 6
     * TODO
     * 
     * SCJP-Guide Self Test, Operators, 7
     * TODO
     * 
     * SCJP-Guide Self Test, Operators, 8
     * TODO
     * 
     * SCJP-Guide Self Test, Operators, 9
     * TODO
     * 
     * SCJP-Guide Self Test, Operators, 10
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 1
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 2
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 3
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 4
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 5
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 6
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 7
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 8
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 9
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 10
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 11
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 12
     * Class Wind
     * 
     * SCJP-Guide Self Test, Flow Control, 13
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 14
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 15
     * TODO
     * 
     * SCJP-Guide Self Test, Flow Control, 16
     * TODO
     * 
     * ==== Buch Prep
     * SCJP-Prep-1 Assessement Test 1, Question 1, Loesung P. 12;
     * Class Bunnies
     * SCJP-Prep-1 Assessement Test 1, Question 2, Loesung P. 12;
     * Class Jail
     * SCJP-Prep-1 Assessement Test 1, Question 3, Loesung P. 13;
     * Class Fabric
     * 
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println("Moep2");
    }
    
    /**
     * Study Guide Self Test 
     */
    public void selfTestChap01Question01(){
        // Which is true?
        // X extends Y is correct if X and Y are either both classes or both 
        // interfaces. Other options are wrong.
        // Klassen erweitern Klassen, Interfaces erweitern Interfaces, Klassen
        // implementieren dann Interfaces!
    }
    
    /**
     * Study Guide Self Test 
     */
    public void selfTestChap01Question02(){
        // JavaBeans-Namens-Konvention
        // addX() geht bei Listenern, getX() und setX() sind okay, fuer booleans
        // geht auch isX() statt getX();
    }
}
